﻿using EBQ_ROP_SDK_NET.bean;
using EBQ_ROP_SDK_NET.rop;
using ENCRYPT.sha512;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using COMMON.Json;

namespace EBQ_ROP_SDK_NET
{
    class Program
    {
        static void Main(string[] args)
        {
            
            RopClient rop = new RopClient("17557b090e5f5244", "dd8f068417557b090e5f52447648f267", true);

            SortedDictionary<string, Object> paras = new SortedDictionary<string, Object>();

            //paras.Add("applyNo", "APL760685856456577024");
            //Console.WriteLine(rop.send("sign.link.file", paras));

            
            // 合同名称
            paras.Add("contractName", "分期合同005");

            // 合同金额
            paras.Add("contractAmount", 20000.00);

            // 签字类型 0：标准图形章 1：手写签名或企业公章        
            paras.Add("signLevel", 0);

            // 签约人1
            Signatory signatory1 = new Signatory();
            signatory1.userType = 0; //0：个人 1：企业
            signatory1.fullName = "张三"; //签约人姓名
            signatory1.identityType = 1; //证件类型 1：身份证 2：护照 3：台胞证 4：港澳通行证 11：营业执照 12：统一社会信用代码 99：其他
            signatory1.identityCard = "500240198704146456"; //证件号码
            signatory1.mobile = "15123649601"; // 签约人联系电话
            signatory1.address = "地址"; //签约人地址
            //签约人2
            Signatory signatory2 = new Signatory();
            signatory2.userType = 0; //0：个人 1：企业
            signatory2.fullName = "李四"; //签约人姓名
            signatory2.identityType = 1; //证件类型 1：身份证 2：护照 3：台胞证 4：港澳通行证 11：营业执照 12：统一社会信用代码 99：其他
            signatory2.identityCard = "500105198304201877"; //证件号码
            signatory2.mobile = "18996083532"; // 签约人联系电话
            signatory2.address = "地址xxxxz"; //签约人地址

            Signatory[] signatories = { signatory1, signatory2 };
            paras.Add("signatories", signatories);

            //签字备注
            paras.Add("remark", "这里是备注信息");

            //身份认证级别
            //0：无认证 1：USBKey数字证书认证CA 2：银行卡认证 3：支付宝认证 4：请选择任意一种验证方式 5：请选择任意两种验证方式 6：请选择任意三种验证方式 7：请使用CA及银行卡验证 8：请使用银行卡及支付宝验证 9：请使用CA及支付宝验证 99：其他
            paras.Add("authenticationLevel", 4);

            //强制认证
            //0：不强制认证（需要认证时，认证一次就可），
            //1：强制认证（需要认证时，每次都要进行认证）.
            paras.Add("forceAuthentication", 1);

            UploadFile uploadFile = new UploadFile("E:\\tmp\\abc.pdf");
            paras.Add("file", uploadFile);

            Console.WriteLine(rop.send("sign.apply.file", paras));

    


            Console.ReadKey();
    
        }
    }
}
